.TH std::ranges::adjacent_view::begin 3 "2024.06.10" "http://cppreference.com" "C++ Standard Libary"
.SH NAME
std::ranges::adjacent_view::begin \- std::ranges::adjacent_view::begin

.SH Synopsis
   constexpr auto begin() requires (!__SimpleView<V>);           \fB(1)\fP (since C++23)
   constexpr auto begin() const requires ranges::range<const V>; \fB(2)\fP (since C++23)

   Returns an iterator to the first element of the adjacent_view.

   Let base_ be the underlying view.

   1) Equivalent to return /*iterator*/<false>(ranges::begin(base_),
   ranges::end(base_));.
   2) Equivalent to return /*iterator*/<true>(ranges::begin(base_),
   ranges::end(base_));.

.SH Parameters

   \fI(none)\fP

.SH Return value

   Iterator to the first element.

.SH Example


// Run this code

 #include <ranges>
 #include <tuple>
 #include <type_traits>

 int main()
 {
     constexpr static auto v = {'A', 'B', 'C', 'D', 'E'};

     constexpr auto view = std::views::adjacent<3>(v);

     constexpr auto tuple = *view.begin();

     static_assert
     (
         std::is_same_v
         <
             decltype(tuple),
             const std::tuple<char const&, char const&, char const&>
         >
     );

     static_assert
     (
         std::get<0>(tuple) == 'A' &&
         std::get<1>(tuple) == 'B' &&
         std::get<2>(tuple) == 'C'
     );
 }

.SH See also

   end           returns an iterator or a sentinel to the end
   (C++23)       \fI(public member function)\fP
   ranges::begin returns an iterator to the beginning of a range
   (C++20)       (customization point object)
